package main

import (
	"jlpay-sdk-go/pkg/jlpay/demo"
	"jlpay-sdk-go/pkg/jlpay/models/marketing"
	marketingService "jlpay-sdk-go/pkg/jlpay/services/marketing"
	"jlpay-sdk-go/pkg/jlpay/utils"
)

// 营销活动查询示例
func marketingActivityQueryDemo(marketingActivityQueryService *marketingService.MarketingActivityQueryService) {
	// 检查服务是否为空
	if marketingActivityQueryService == nil {
		utils.Errorf("营销活动查询服务为空")
		return
	}

	// 创建营销活动查询请求
	request := marketing.NewMarketingActivityQueryRequest()

	// 设置请求参数 - 与Python版本保持一致
	request.SetSponsorID("61000005")
	request.SetPage("1")
	request.SetLimit("10")

	// 发送请求
	response, err := marketingActivityQueryService.Execute(request)
	if err != nil {
		utils.Errorf("营销活动查询请求失败: %v", err)
		return
	}

	// 处理响应 - 使用BaseResponse接口的HandleResponse方法
	response.HandleResponse("营销活动查询")
}

func main() {
	// 设置日志级别为info，显示详细的调试信息
	utils.SetLogLevel("info")

	utils.Info("=============================")
	utils.Info("===== 营销活动查询示例 开始 =====")
	utils.Info("=============================")

	// 创建配置对象和营销活动查询服务
	config := demo.CreateDemoConfig()
	if config == nil {
		utils.Errorf("配置创建失败")
		return
	}

	marketingActivityQueryService := marketingService.NewMarketingActivityQueryService(config)
	if marketingActivityQueryService == nil {
		utils.Errorf("营销活动查询服务创建失败")
		return
	}

	marketingActivityQueryDemo(marketingActivityQueryService)

	utils.Info("=============================")
	utils.Info("===== 营销活动查询示例执行完毕 =====")
	utils.Info("=============================")
}
